package lib

//文件操作类
import (
	"fmt"
	"io/ioutil"
	"net/http"
	"os"

	"github.com/gin-gonic/gin"
)

/**文件读写创建删除操作页面**/
func Filerwhtml(c *gin.Context) {
	c.HTML(http.StatusOK, "filerw.html", gin.H{
		"title": "GIN: 文件读写创建删除操作布局页面",
	})
}

/**创建文件**/
func FilerCreate(c *gin.Context) {
	iscreate := true //创建文件是否成功
	//创建文件
	f, err := os.Create("static/txtfile/log.text")
	if err != nil {
		iscreate = false
	}
	defer f.Close()
	fmt.Println(f)
	//返回结果
	c.JSON(http.StatusOK, gin.H{
		"path":    "static/txtfile/log.text",
		"success": iscreate,
	})
}

/**将内容写入文件**/
func FilerWrite(path string, info string) bool {
	isWrite := true //写入文件是否成功
	//需要写入到文件的内容
	//info := c.PostForm("info")
	//	path := c.PostForm("path")

	d1 := []byte(info)
	err := ioutil.WriteFile(path, d1, 0644)

	if err != nil {
		isWrite = false
	}
	return isWrite
	/*
		//返回结果
		c.JSON(http.StatusOK, gin.H{
			"success": iswrite,
			"info":    info,
		})
	*/
}

/**读取文件内容**/
func FileRead(path string) (info string, isread bool) { //
	//	path := "/Users/juntaozheng/web/golang/cmsapi/config.json"
	isread = false //读取文件是否成功
	//path := c.PostForm("path")
	//文件读取任务是将文件内容读取到内存中。
	d1, err := ioutil.ReadFile(path)
	info = string(d1)
	if err == nil {
		isread = true
		/*
			d2 := make(map[string](map[string]interface{}))
			err = json.Unmarshal([]byte(info), &d2)
			if err == nil {

				isread = true
			}
		*/
	}
	return info, isread
	//fmt.Println("d2", d2["redis"])

}

/**删除文件**/
func FilerDelete(c *gin.Context) {

	isremove := false          //删除文件是否成功
	path := c.PostForm("path") //源文件路径

	//删除文件
	cuowu := os.Remove(path)

	if cuowu != nil {
		//如果删除失败则输出 file remove Error!
		fmt.Println("file remove Error!")
		//输出错误详细信息
		fmt.Printf("%s", cuowu)
	} else {
		//如果删除成功则输出 file remove OK!
		fmt.Print("file remove OK!")
		isremove = true
	}
	//返回结果
	c.JSON(http.StatusOK, gin.H{
		"success": isremove,
	})
}
